home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / RIncludes / PictUtils.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  52.8 KB  |  1,615 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        PictUtils.r
  3.  
  4.      Contains:    Picture Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __PICTUTILS_R__
  19. #define __PICTUTILS_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25.  
  26. /*----------------------------PICT • Quickdraw Picture----------------------------------*/
  27. /*
  28.     PICT_RezTemplateVersion:
  29.         0 - PICT opcodes as hex values                 <-- default
  30.         1 - PICT opcodes dissasembled         
  31.         2 - PICT opcodes dissasembled supports extended HeaderOp        
  32. */
  33. #ifndef __PICT_R__
  34. #define __PICT_R__
  35.  
  36. #ifndef PICT_RezTemplateVersion
  37.     #ifdef oldPICTCompatible                        /* grandfather in use of “oldPICTCompatible” */
  38.         #if oldPICTCompatible
  39.             #define PICT_RezTemplateVersion 1
  40.         #else
  41.             #define PICT_RezTemplateVersion 2
  42.         #endif
  43.     #else
  44.         #define PICT_RezTemplateVersion 1
  45.     #endif
  46. #endif
  47.  
  48. type 'PICT' {
  49. #if PICT_RezTemplateVersion == 0
  50.     unsigned integer;                                        /* Length                */
  51.     rect;                                                    /* Frame                */
  52.     hex string;                                             /* Data                 */
  53. #else
  54.     startOfPict:
  55.         unsigned integer = (endOfPict - startOfPict) >> 3;
  56.         Rect;                                    /* Bounds of picture */
  57.         switch {
  58.             case VersionOne:
  59.                 key integer = $1101;
  60.                 array OpCodes {
  61.                     switch {
  62.                         case NOP:
  63.                             key byte = $00;
  64.  
  65.                         case ClipRgn:
  66.                             key byte = $01;
  67.     ClipRgnStart:            integer = (ClipRgnEnd[$$ArrayIndex(OpCodes)] - ClipRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  68.                             Rect;                /* region’s enclosing rect */
  69.                             hex string [$$Word(ClipRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  70.     ClipRgnEnd:
  71.                         case BkPat:
  72.                             key byte = $02;
  73.                             hex string [8];
  74.  
  75.                         case TxFont:
  76.                             key byte = $03;
  77.                             integer;            /* font */
  78.  
  79.                         case TxFace:
  80.                             key byte = $04;
  81.                             unsigned hex byte;    /* text face */
  82.  
  83.                         case TxMode:
  84.                             key byte = $05;
  85.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  86.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  87.                                         patCopy, patOr, patXor, patBic,
  88.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  89.                         case SpExtra:
  90.                             key byte = $06;
  91.                             unsigned hex longint;
  92.  
  93.                         case PnSize:
  94.                             key byte = $07;
  95.                             Point;
  96.  
  97.                         case PnMode:
  98.                             key byte = $08;
  99.                             unsigned hex integer;
  100.  
  101.                         case PnPat:
  102.                             key byte = $09;
  103.                             hex string [8];
  104.  
  105.                         case ThePat:
  106.                             key byte = $0A;
  107.                             hex string [8];
  108.  
  109.                         case OvSize:
  110.                             key byte = $0B;
  111.                             Point;
  112.  
  113.                         case Origin:
  114.                             key byte = $0C;
  115.                             integer;            /* dh */
  116.                             integer;            /* dv */
  117.  
  118.                         case TxSize:
  119.                             key byte = $0D;
  120.                             integer;
  121.  
  122.                         case FgColor:
  123.                             key byte = $0E;
  124.                             longint;
  125.  
  126.                         case BkColor:
  127.                             key byte = $0F;
  128.                             longint;
  129.  
  130.                         case TxRatio:
  131.                             key byte = $10;
  132.                             Point;                /* numer */
  133.                             Point;                /* denom */
  134.  
  135.                         case PicVersion:
  136.                             key byte = $11;
  137.                             byte;
  138.  
  139.                         case Line:
  140.                             key byte = $20;
  141.                             Point;                /* pnLoc */
  142.                             Point;                /* newPt */
  143.  
  144.                         case LineFrom:
  145.                             key byte = $21;
  146.                             Point;                /* newPt */
  147.  
  148.                         case ShortLine:
  149.                             key byte = $22;
  150.                             Point;                /* pnLoc */
  151.                             byte;                /* dh */
  152.                             byte;                /* dv */
  153.  
  154.                         case ShortLineFrom:
  155.                             key byte = $23;
  156.                             byte;                /* dh */
  157.                             byte;                /* dv */
  158.  
  159.                         case LongText:
  160.                             key byte = $28;
  161.                             Point;                /* txLoc */
  162.                             pstring;
  163.  
  164.                         case dhText:
  165.                             key byte = $29;
  166.                             byte;                /* dh */
  167.                             pstring;
  168.  
  169.                         case dvText:
  170.                             key byte = $2A;
  171.                             byte;                /* dvh */
  172.                             pstring;
  173.  
  174.                         case dhdvText:
  175.                             key byte = $2B;
  176.                             byte;                /* dh */
  177.                             byte;                /* dv */
  178.                             pstring;
  179.  
  180.                         case FrameRect:
  181.                             key byte = $30;
  182.                             Rect;
  183.  
  184.                         case PaintRect:
  185.                             key byte = $31;
  186.                             Rect;
  187.                         case EraseRect:
  188.                             key byte = $32;
  189.                             Rect;
  190.  
  191.                         case InvertRect:
  192.                             key byte = $33;
  193.                             Rect;
  194.  
  195.                         case FillRect:
  196.                             key byte = $34;
  197.                             Rect;
  198.  
  199.                         case FrameSameRect:
  200.                             key byte = $38;
  201.  
  202.                         case PaintSameRect:
  203.                             key byte = $39;
  204.  
  205.                         case EraseSameRect:
  206.                             key byte = $3A;
  207.  
  208.                         case InvertSameRect:
  209.                             key byte = $3B;
  210.  
  211.                         case FillSameRect:
  212.                             key byte = $3C;
  213.  
  214.                         case FrameRRect:
  215.                             key byte = $40;
  216.                             Rect;
  217.  
  218.                         case PaintRRect:
  219.                             key byte = $41;
  220.                             Rect;
  221.  
  222.                         case EraseRRect:
  223.                             key byte = $42;
  224.                             Rect;
  225.  
  226.                         case InvertRRect:
  227.                             key byte = $43;
  228.                             Rect;
  229.  
  230.                         case FillRRect:
  231.                             key byte = $44;
  232.                             Rect;
  233.  
  234.                         case FrameSameRRect:
  235.                             key byte = $48;
  236.  
  237.                         case PaintSameRRect:
  238.                             key byte = $49;
  239.  
  240.                         case EraseSameRRect:
  241.                             key byte = $4A;
  242.  
  243.                         case InvertSameRRect:
  244.                             key byte = $4B;
  245.  
  246.                         case FillSameRRect:
  247.                             key byte = $4C;
  248.  
  249.                         case FrameOval:
  250.                             key byte = $50;
  251.                             Rect;
  252.  
  253.                         case PaintOval:
  254.                             key byte = $51;
  255.                             Rect;
  256.  
  257.                         case EraseOval:
  258.                             key byte = $52;
  259.                             Rect;
  260.  
  261.                         case InvertOval:
  262.                             key byte = $53;
  263.                             Rect;
  264.  
  265.                         case FillOval:
  266.                             key byte = $54;
  267.                             Rect;
  268.  
  269.                         case FrameSameOval:
  270.                             key byte = $58;
  271.  
  272.                         case PaintSameOval:
  273.                             key byte = $59;
  274.  
  275.                         case EraseSameOval:
  276.                             key byte = $5A;
  277.  
  278.                         case InvertSameOval:
  279.                             key byte = $5B;
  280.  
  281.                         case FillSameOval:
  282.                             key byte = $5C;
  283.                         case FrameArc:
  284.                             key byte = $60;
  285.                             Rect;
  286.                             integer;                /* startAngle */
  287.                             integer;                /* arcAngle */
  288.  
  289.                         case PaintArc:
  290.                             key byte = $61;
  291.                             Rect;
  292.                             integer;                /* startAngle */
  293.                             integer;                /* arcAngle */
  294.  
  295.                         case EraseArc:
  296.                             key byte = $62;
  297.                             Rect;
  298.                             integer;                /* startAngle */
  299.                             integer;                /* arcAngle */
  300.  
  301.                         case InvertArc:
  302.                             key byte = $63;
  303.                             Rect;
  304.                             integer;                /* startAngle */
  305.                             integer;                /* arcAngle */
  306.  
  307.                         case FillArc:
  308.                             key byte = $64;
  309.                             Rect;
  310.                             integer;                /* startAngle */
  311.                             integer;                /* arcAngle */
  312.  
  313.                         case FrameSameArc:
  314.                             key byte = $68;
  315.                             integer;                /* startAngle */
  316.                             integer;                /* arcAngle */
  317.  
  318.                         case PaintSameArc:
  319.                             key byte = $69;
  320.                             integer;                /* startAngle */
  321.                             integer;                /* arcAngle */
  322.  
  323.                         case EraseSameArc:
  324.                             key byte = $6A;
  325.                             integer;                /* startAngle */
  326.                             integer;                /* arcAngle */
  327.  
  328.                         case InvertSameArc:
  329.                             key byte = $6B;
  330.                             integer;                /* startAngle */
  331.                             integer;                /* arcAngle */
  332.  
  333.                         case FillSameArc:
  334.                             key byte = $6C;
  335.                             integer;                /* startAngle */
  336.                             integer;                /* arcAngle */
  337.  
  338.                         case FramePoly:
  339.                             key byte = $70;
  340.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  341.                             Rect;                    /* enclosing rectangle */
  342.                             wide array PolyPoints { Point; };
  343.                         case PaintPoly:
  344.                             key byte = $71;
  345.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  346.                             Rect;                    /* enclosing rectangle */
  347.                             wide array PolyPoints { Point; };
  348.  
  349.                         case ErasePoly:
  350.                             key byte = $72;
  351.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  352.                             Rect;                    /* enclosing rectangle */
  353.                             wide array PolyPoints { Point; };
  354.  
  355.                         case InvertPoly:
  356.                             key byte = $73;
  357.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  358.                             Rect;                    /* enclosing rectangle */
  359.                             wide array PolyPoints { Point; };
  360.  
  361.                         case FillPoly:
  362.                             key byte = $74;
  363.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  364.                             Rect;                    /* enclosing rectangle */
  365.                             wide array PolyPoints { Point; };
  366.  
  367.                         case FrameSamePoly:
  368.                             key byte = $78;
  369.  
  370.                         case PaintSamePoly:
  371.                             key byte = $79;
  372.  
  373.                         case EraseSamePoly:
  374.                             key byte = $7A;
  375.  
  376.                         case InvertSamePoly:
  377.                             key byte = $7B;
  378.  
  379.                         case FillSamePoly:
  380.                             key byte = $7C;
  381.                         case FrameRgn:
  382.                             key byte = $80;
  383.     FrameRgnStart:            integer = (FrameRgnEnd[$$ArrayIndex(OpCodes)] - FrameRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  384.                             Rect;                /* region’s enclosing rect */
  385.                             hex string [$$Word(FrameRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  386.     FrameRgnEnd:
  387.                         case PaintRgn:
  388.                             key byte = $81;
  389.     PaintRgnStart:            integer = (PaintRgnEnd[$$ArrayIndex(OpCodes)] - PaintRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  390.                             Rect;                /* region’s enclosing rect */
  391.                             hex string [$$Word(PaintRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  392.     PaintRgnEnd:
  393.                         case EraseRgn:
  394.                             key byte = $82;
  395.     EraseRgnStart:            integer = (EraseRgnEnd[$$ArrayIndex(OpCodes)] - EraseRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  396.                             Rect;                /* region’s enclosing rect */
  397.                             hex string [$$Word(EraseRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  398.     EraseRgnEnd:
  399.                         case InvertRgn:
  400.                             key byte = $83;
  401.     InvertRgnStart:            integer = (InvertRgnEnd[$$ArrayIndex(OpCodes)] - InvertRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  402.                             Rect;                /* region’s enclosing rect */
  403.                             hex string [$$Word(InvertRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  404.     InvertRgnEnd:
  405.                         case FillRgn:
  406.                             key byte = $84;
  407.     FillRgnStart:            integer = (FillRgnEnd[$$ArrayIndex(OpCodes)] - FillRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  408.                             Rect;                /* region’s enclosing rect */
  409.                             hex string [$$Word(FillRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  410.     FillRgnEnd:
  411.                         case FrameSameRgn:
  412.                             key byte = $88;
  413.  
  414.                         case PaintSameRgn:
  415.                             key byte = $89;
  416.  
  417.                         case EraseSameRgn:
  418.                             key byte = $8A;
  419.  
  420.                         case InvertSameRgn:
  421.                             key byte = $8B;
  422.  
  423.                         case FillSameRgn:
  424.                             key byte = $8C;
  425.  
  426.                         case BitsRect:
  427.                             key byte = $90;
  428.     BitsRectRowBytes:        integer;                    /* row bytes */
  429.     BitsRectBounds:            Rect;                        /* bounds */
  430.                             Rect;                        /* srcRect */
  431.                             Rect;                        /* destRect */
  432.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  433.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  434.                                         patCopy, patOr, patXor, patBic,
  435.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  436.                             hex string [($$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  437.                                         - $$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],0,16))
  438.                                         * $$Word(BitsRectRowBytes[$$ArrayIndex(OpCodes)])];
  439.  
  440.                         case BitsRgn:
  441.                             key byte = $91;
  442.     BitsRgnRowBytes:        integer;                    /* row bytes */
  443.     BitsRgnBounds:            Rect;                        /* bounds */
  444.                             Rect;                        /* srcRect */
  445.                             Rect;                        /* destRect */
  446.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  447.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  448.                                         patCopy, patOr, patXor, patBic,
  449.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  450.     BitsRgnStart:            integer = (BitsRgnEnd[$$ArrayIndex(OpCodes)] - BitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  451.                             Rect;                /* region’s enclosing rect */
  452.                             hex string [$$Word(BitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  453.     BitsRgnEnd:
  454.                             hex string [($$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  455.                                         - $$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],0,16))
  456.                                         * $$Word(BitsRgnRowBytes[$$ArrayIndex(OpCodes)])];
  457.                         case PackBitsRect:
  458.                             key byte = $98;
  459.     PackBitsRectRowBytes:    integer;                    /* row bytes */
  460.     PackBitsRectBounds:        Rect;                        /* bounds */
  461.                             Rect;                        /* srcRect */
  462.                             Rect;                        /* destRect */
  463.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  464.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  465.                                         patCopy, patOr, patXor, patBic,
  466.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  467.     PackBitsBits:            hex string [$$PackedSize(PackBitsBits[$$ArrayIndex(OpCodes)],
  468.                                         $$Word(PackBitsRectRowBytes[$$ArrayIndex(OpCodes)]),
  469.                                         ($$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  470.                                         - $$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],0,16)))];
  471.                         case PackBitsRgn:
  472.                             key byte = $99;
  473.     PackBitsRgnRowBytes:    integer;                    /* row bytes */
  474.     PackBitsRgnBounds:        Rect;                        /* bounds */
  475.                             Rect;                        /* srcRect */
  476.                             Rect;                        /* destRect */
  477.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  478.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  479.                                         patCopy, patOr, patXor, patBic,
  480.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  481.     PackBitsRgnStart:        integer = (PackBitsRgnEnd[$$ArrayIndex(OpCodes)] - PackBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  482.                             Rect;                /* region’s enclosing rect */
  483.                             hex string [$$Word(PackBitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  484.     PackBitsRgnEnd:            hex string [$$PackedSize(PackBitsRgnEnd[$$ArrayIndex(OpCodes)],
  485.                                         $$Word(PackBitsRgnRowBytes[$$ArrayIndex(OpCodes)]),
  486.                                         ($$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  487.                                         - $$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],0,16)))];
  488.  
  489.                         case ShortComment:
  490.                             key byte = $A0;
  491.                             integer;            /* kind */
  492.  
  493.                         case LongComment:
  494.                             key byte = $A1;
  495.                             integer;            /* kind */
  496.     LongCommentStart:        integer = (LongCommentEnd[$$ArrayIndex(OpCodes)] - LongCommentStart[$$ArrayIndex(OpCodes)] - 16) >> 3;
  497.                             hex string [$$Word(LongCommentStart[$$ArrayIndex(OpCodes)])];
  498.     LongCommentEnd:
  499.                     };
  500.                 };
  501.                 byte = $FF;     /* End of picture */
  502.             case VersionTwo:
  503.                 key longint = $001102ff;        /* Version op + version */
  504.                 array OpCodes {
  505.                     switch {
  506.                         case Clip:
  507.                             key integer = $0001;
  508.     ClipStart:                integer = (ClipEnd[$$ArrayIndex(OpCodes)] - ClipStart[$$ArrayIndex(OpCodes)]) >> 3;
  509.                             Rect;                /* region’s enclosing rect */
  510.                             hex string [$$Word(ClipStart[$$ArrayIndex(OpCodes)]) - 10];
  511.     ClipEnd:
  512.                         case BkPat:
  513.                             key integer = $0002;
  514.                             hex string [8];
  515.  
  516.                         case TxFont:
  517.                             key integer = $0003;
  518.                             integer;            /* font */
  519.  
  520.                         case TxFace:
  521.                             key integer = $0004;
  522.                             unsigned hex byte;    /* text face */
  523.  
  524.                         case TxMode:
  525.                             key integer = $0005;
  526.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  527.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  528.                                         patCopy, patOr, patXor, patBic,
  529.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  530.  
  531.                         case SpExtra:
  532.                             key integer = $0006;
  533.                             unsigned hex longint;
  534.  
  535.                         case PnSize:
  536.                             key integer = $0007;
  537.                             Point;
  538.  
  539.                         case PnMode:
  540.                             key integer = $0008;
  541.                             unsigned hex integer;
  542.  
  543.                         case PnPat:
  544.                             key integer = $0009;
  545.                             hex string [8];
  546.  
  547.                         case FillPat:
  548.                             key integer = $000A;
  549.                             hex string [8];
  550.  
  551.                         case OvSize:
  552.                             key integer = $000B;
  553.                             Point;
  554.  
  555.                         case Origin:
  556.                             key integer = $000C;
  557.                             integer;            /* dh */
  558.                             integer;            /* dv */
  559.  
  560.                         case TxSize:
  561.                             key integer = $000D;
  562.                             integer;
  563.  
  564.                         case FgColor:
  565.                             key integer = $000E;
  566.                             longint;
  567.  
  568.                         case BkColor:
  569.                             key integer = $000F;
  570.                             longint;
  571.  
  572.                         case TxRatio:
  573.                             key integer = $0010;
  574.                             Point;                /* numer */
  575.                             Point;                /* denom */
  576.  
  577.                         case Version:
  578.                             key integer = $0011;
  579.                             byte;
  580.                         case BkPixPat:
  581.                             key integer = $0012;
  582.                             switch {
  583.                                 case newPattern:
  584.                                     key integer = 1;
  585.                                     hex string [8];            /* old-style pattern    */
  586.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  587.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  588.     BkPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  589.     BkPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  590.                                     integer;                                                /* pixMap vers number    */
  591.                                     integer    unpacked;                                        /* Packing format        */
  592.                                     unsigned longint;                                        /* Size of pixel data    */
  593.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  594.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  595.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  596.                                     integer;                                                /* # bits in pixel        */
  597.                                     integer;                                                /* # components in pixel*/
  598.                                     integer;                                                /* # bits per field        */
  599.                                     unsigned longint;                                        /* Offset to next plane    */
  600.                                     unsigned longint;                                        /* Offset to color table*/
  601.                                     fill long;                                                /* Reserved                */
  602.                                     /* Color Table */
  603.                                     unsigned hex longint;                                    /* ctSeed                */
  604.                                     integer;                                                /* ctFlags                */
  605.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  606.                                     wide array ColorSpec {
  607.                                             integer;                                        /* value                */
  608.                                             unsigned integer;                                /* RGB:    red                */
  609.                                             unsigned integer;                                /*        green            */
  610.                                             unsigned integer;                                /*        blue            */
  611.                                     };
  612.                                     /* If rowBytes < 8 then data is unpacked,
  613.                                        if >= 8, then data is packed */
  614.     BkPixPatBits:                    hex string [($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  615.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  616.                                                 ($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  617.                                                 $$PackedSize(BkPixPatBits[$$ArrayIndex(OpCodes)],
  618.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  619.                                                 ($$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  620.                                                 - $$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  621.  
  622.                                 case ditherPattern:
  623.                                     key integer = 2;
  624.                                     hex string [8];            /* old-style pattern    */
  625.                                     unsigned integer;        /* RGB:    red                */
  626.                                     unsigned integer;        /*        green            */
  627.                                     unsigned integer;        /*        blue            */
  628.                             };
  629.                         case PnPixPat:
  630.                             key integer = $0013;
  631.                             switch {
  632.                                 case newPattern:
  633.                                     key integer = 1;
  634.                                     hex string [8];            /* old-style pattern    */
  635.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  636.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  637.     PnPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  638.     PnPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  639.                                     integer;                                                /* pixMap vers number    */
  640.                                     integer    unpacked;                                        /* Packing format        */
  641.                                     unsigned longint;                                        /* Size of pixel data    */
  642.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  643.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  644.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  645.                                     integer;                                                /* # bits in pixel        */
  646.                                     integer;                                                /* # components in pixel*/
  647.                                     integer;                                                /* # bits per field        */
  648.                                     unsigned longint;                                        /* Offset to next plane    */
  649.                                     unsigned longint;                                        /* Offset to color table*/
  650.                                     fill long;                                                /* Reserved                */
  651.                                     /* Color Table */
  652.                                     unsigned hex longint;                                    /* ctSeed                */
  653.                                     integer;                                                /* ctFlags                */
  654.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  655.                                     wide array ColorSpec {
  656.                                             integer;                                        /* value                */
  657.                                             unsigned integer;                                /* RGB:    red                */
  658.                                             unsigned integer;                                /*        green            */
  659.                                             unsigned integer;                                /*        blue            */
  660.                                     };
  661.                                     /* If rowBytes < 8 then data is unpacked,
  662.                                        if >= 8, then data is packed */
  663.     PnPixPatBits:                    hex string [($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  664.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  665.                                                 ($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  666.                                                 $$PackedSize(PnPixPatBits[$$ArrayIndex(OpCodes)],
  667.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  668.                                                 ($$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  669.                                                 - $$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  670.                                 case ditherPattern:
  671.                                     key integer = 2;
  672.                                     hex string [8];            /* old-style pattern    */
  673.                                     unsigned integer;        /* RGB:    red                */
  674.                                     unsigned integer;        /*        green            */
  675.                                     unsigned integer;        /*        blue            */
  676.                             };
  677.  
  678.                         case FillPixPat:
  679.                             key integer = $0014;
  680.                             switch {
  681.                                 case newPattern:
  682.                                     key integer = 1;
  683.                                     hex string [8];            /* old-style pattern    */
  684.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  685.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  686.     FillPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  687.     FillPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  688.                                     integer;                                                /* pixMap vers number    */
  689.                                     integer    unpacked;                                        /* Packing format        */
  690.                                     unsigned longint;                                        /* Size of pixel data    */
  691.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  692.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  693.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  694.                                     integer;                                                /* # bits in pixel        */
  695.                                     integer;                                                /* # components in pixel*/
  696.                                     integer;                                                /* # bits per field        */
  697.                                     unsigned longint;                                        /* Offset to next plane    */
  698.                                     unsigned longint;                                        /* Offset to color table*/
  699.                                     fill long;                                                /* Reserved                */
  700.                                     /* Color Table */
  701.                                     unsigned hex longint;                                    /* ctSeed                */
  702.                                     integer;                                                /* ctFlags                */
  703.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  704.                                     wide array ColorSpec {
  705.                                             integer;                                        /* value                */
  706.                                             unsigned integer;                                /* RGB:    red                */
  707.                                             unsigned integer;                                /*        green            */
  708.                                             unsigned integer;                                /*        blue            */
  709.                                     };
  710.                                     /* If rowBytes < 8 then data is unpacked,
  711.                                        if >= 8, then data is packed */
  712.     FillPixPatBits:                    hex string [($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  713.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  714.                                                 ($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  715.                                                 $$PackedSize(FillPixPatBits[$$ArrayIndex(OpCodes)],
  716.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  717.                                                 ($$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  718.                                                 - $$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  719.                                 case ditherPattern:
  720.                                     key integer = 2;
  721.                                     hex string [8];            /* old-style pattern    */
  722.                                     unsigned integer;        /* RGB:    red                */
  723.                                     unsigned integer;        /*        green            */
  724.                                     unsigned integer;        /*        blue            */
  725.                             };
  726.  
  727.                         case PnLocHFrac:
  728.                             key integer = $0015;
  729.                             unsigned hex integer;
  730.  
  731.                         case ChExtra:
  732.                             key integer = $0016;
  733.                             integer;                        /* extra for each character */
  734.  
  735.                         case AppleReserved0017:
  736.                             key integer = $0017;
  737.  
  738.                         case AppleReserved0018:
  739.                             key integer = $0018;
  740.  
  741.                         case AppleReserved0019:
  742.                             key integer = $0019;
  743.  
  744.                         case RGBFgCol:
  745.                             key integer = $001A;
  746.                             unsigned integer;        /* RGB:    red                */
  747.                             unsigned integer;        /*        green            */
  748.                             unsigned integer;        /*        blue            */
  749.  
  750.                         case RGBBkCol:
  751.                             key integer = $001B;
  752.                             unsigned integer;        /* RGB:    red                */
  753.                             unsigned integer;        /*        green            */
  754.                             unsigned integer;        /*        blue            */
  755.  
  756.                         case HiliteMode:
  757.                             key integer = $001C;
  758.  
  759.                         case HiliteColor:
  760.                             key integer = $001D;
  761.                             unsigned integer;        /* RGB:    red                */
  762.                             unsigned integer;        /*        green            */
  763.                             unsigned integer;        /*        blue            */
  764.  
  765.                         case DefHilite:
  766.                             key integer = $001E;
  767.  
  768.                         case OpColor:
  769.                             key integer = $001F;
  770.                             unsigned integer;        /* RGB:    red                */
  771.                             unsigned integer;        /*        green            */
  772.                             unsigned integer;        /*        blue            */
  773.  
  774.                         case Line:
  775.                             key integer = $0020;
  776.                             Point;                    /* pnLoc */
  777.                             Point;                    /* newPt */
  778.  
  779.                         case LineFrom:
  780.                             key integer = $0021;
  781.                             Point;                    /* newPt */
  782.  
  783.                         case ShortLine:
  784.                             key integer = $0022;
  785.                             Point;                    /* pnLoc */
  786.                             byte;                    /* dh */
  787.                             byte;                    /* dv */
  788.  
  789.                         case ShortLineFrom:
  790.                             key integer = $0023;
  791.                             byte;                    /* dh */
  792.                             byte;                    /* dv */
  793.                         case AppleReserved0024:
  794.                             key integer = $0024;
  795.                 AR24:        unsigned integer = (AR24End[$$ArrayIndex(Opcodes)] - AR24[$$ArrayIndex(Opcodes)]) / 8 - 2;
  796.                             hex string [$$Word(AR24[$$ArrayIndex(Opcodes)])];
  797.                 AR24End:
  798.  
  799.                         case AppleReserved0025:
  800.                             key integer = $0025;
  801.                 AR25:        unsigned integer = (AR25End[$$ArrayIndex(Opcodes)] - AR25[$$ArrayIndex(Opcodes)]) / 8 - 2;
  802.                             hex string [$$Word(AR25[$$ArrayIndex(Opcodes)])];
  803.                 AR25End:
  804.  
  805.                         case AppleReserved0026:
  806.                             key integer = $0026;
  807.                 AR26:        unsigned integer = (AR26End[$$ArrayIndex(Opcodes)] - AR26[$$ArrayIndex(Opcodes)]) / 8 - 2;
  808.                             hex string [$$Word(AR26[$$ArrayIndex(Opcodes)])];
  809.                 AR26End:
  810.  
  811.                         case AppleReserved0027:
  812.                             key integer = $0027;
  813.                 AR27:        unsigned integer = (AR27End[$$ArrayIndex(Opcodes)] - AR27[$$ArrayIndex(Opcodes)]) / 8 - 2;
  814.                             hex string [$$Word(AR27[$$ArrayIndex(Opcodes)])];
  815.                 AR27End:
  816.  
  817.                         case LongText:
  818.                             key integer = $0028;
  819.                             Point;                /* TxLoc */
  820.                             pstring;            /* text */
  821.  
  822.                         case DHText:
  823.                             key integer = $0029;
  824.                             byte;                /* dh */
  825.                             pstring;            /* text */
  826.  
  827.                         case DVText:
  828.                             key integer = $002A;
  829.                             byte;                /* dv */
  830.                             pstring;            /* text */
  831.  
  832.                         case DHDVText:
  833.                             key integer = $002B;
  834.                             byte;                /* dh */
  835.                             byte;                /* dv */
  836.                             pstring;            /* text */
  837.  
  838.                         case FontName:
  839.                             key integer = $002C;
  840.                 FontNameBegin:    unsigned integer = (FontNameEnd[$$ArrayIndex(Opcodes)] - FontNameBegin[$$ArrayIndex(Opcodes)]) / 8 - 2;
  841.                             integer;            /* Old font ID */
  842.                             pstring;            /* Font name */
  843.                 FontNameEnd:
  844.  
  845.                         case LineJustify:
  846.                             key integer = $002D;
  847.                             unsigned integer = 8;
  848.                             longint;            /* Inter-character spacing */
  849.                             longint;            /* Total extra space for justification */
  850.  
  851.                         case AppleReserved002E:
  852.                             key integer = $002E;
  853.                 AR2E:        unsigned integer = (AR2EEnd[$$ArrayIndex(Opcodes)] - AR2E[$$ArrayIndex(Opcodes)]) / 8 - 2;
  854.                             hex string [$$Word(AR2E[$$ArrayIndex(Opcodes)])];
  855.                 AR2EEnd:
  856.  
  857.                         case AppleReserved002F:
  858.                             key integer = $002F;
  859.                 AR2F:        unsigned integer = (AR2FEnd[$$ArrayIndex(Opcodes)] - AR2F[$$ArrayIndex(Opcodes)]) / 8 - 2;
  860.                             hex string [$$Word(AR2F[$$ArrayIndex(Opcodes)])];
  861.                 AR2FEnd:
  862.  
  863.                         case FrameRect:
  864.                             key integer = $0030;
  865.                             Rect;
  866.  
  867.                         case PaintRect:
  868.                             key integer = $0031;
  869.                             Rect;
  870.  
  871.                         case EraseRect:
  872.                             key integer = $0032;
  873.                             Rect;
  874.  
  875.                         case InvertRect:
  876.                             key integer = $0033;
  877.                             Rect;
  878.  
  879.                         case FillRect:
  880.                             key integer = $0034;
  881.                             Rect;
  882.  
  883.                         case AppleReserved0035:
  884.                             key integer = $0035;
  885.                             Rect;
  886.  
  887.                         case AppleReserved0036:
  888.                             key integer = $0036;
  889.                             Rect;
  890.  
  891.                         case AppleReserved0037:
  892.                             key integer = $0037;
  893.                             Rect;
  894.                         case FrameSameRect:
  895.                             key integer = $0038;
  896.  
  897.                         case PaintSameRect:
  898.                             key integer = $0039;
  899.  
  900.                         case EraseSameRect:
  901.                             key integer = $003A;
  902.  
  903.                         case InvertSameRect:
  904.                             key integer = $003B;
  905.  
  906.                         case FillSameRect:
  907.                             key integer = $003C;
  908.  
  909.                         case AppleReserved003D:
  910.                             key integer = $003D;
  911.  
  912.                         case AppleReserved003E:
  913.                             key integer = $003E;
  914.  
  915.                         case AppleReserved003F:
  916.                             key integer = $003F;
  917.  
  918.                         case FrameRRect:
  919.                             key integer = $0040;
  920.                             Rect;
  921.  
  922.                         case PaintRRect:
  923.                             key integer = $0041;
  924.                             Rect;
  925.  
  926.                         case EraseRRect:
  927.                             key integer = $0042;
  928.                             Rect;
  929.  
  930.                         case InvertRRect:
  931.                             key integer = $0043;
  932.                             Rect;
  933.  
  934.                         case FillRRect:
  935.                             key integer = $0044;
  936.                             Rect;
  937.  
  938.                         case AppleReserved0045:
  939.                             key integer = $0045;
  940.                             Rect;
  941.  
  942.                         case AppleReserved0046:
  943.                             key integer = $0046;
  944.                             Rect;
  945.  
  946.                         case AppleReserved0047:
  947.                             key integer = $0047;
  948.                             Rect;
  949.  
  950.                         case FrameSameRRect:
  951.                             key integer = $0048;
  952.  
  953.                         case PaintSameRRect:
  954.                             key integer = $0049;
  955.  
  956.                         case EraseSameRRect:
  957.                             key integer = $004A;
  958.  
  959.                         case InvertSameRRect:
  960.                             key integer = $004B;
  961.  
  962.                         case FillSameRRect:
  963.                             key integer = $004C;
  964.  
  965.                         case AppleReserved004D:
  966.                             key integer = $004D;
  967.  
  968.                         case AppleReserved004E:
  969.                             key integer = $004E;
  970.  
  971.                         case AppleReserved004F:
  972.                             key integer = $004F;
  973.  
  974.                         case FrameOval:
  975.                             key integer = $0050;
  976.                             Rect;
  977.  
  978.                         case PaintOval:
  979.                             key integer = $0051;
  980.                             Rect;
  981.  
  982.                         case EraseOval:
  983.                             key integer = $0052;
  984.                             Rect;
  985.  
  986.                         case InvertOval:
  987.                             key integer = $0053;
  988.                             Rect;
  989.  
  990.                         case FillOval:
  991.                             key integer = $0054;
  992.                             Rect;
  993.  
  994.                         case AppleReserved0055:
  995.                             key integer = $0055;
  996.                             Rect;
  997.  
  998.                         case AppleReserved0056:
  999.                             key integer = $0056;
  1000.                             Rect;
  1001.  
  1002.                         case AppleReserved0057:
  1003.                             key integer = $0057;
  1004.                             Rect;
  1005.                         case FrameSameOval:
  1006.                             key integer = $0058;
  1007.  
  1008.                         case PaintSameOval:
  1009.                             key integer = $0059;
  1010.  
  1011.                         case EraseSameOval:
  1012.                             key integer = $005A;
  1013.  
  1014.                         case InvertSameOval:
  1015.                             key integer = $005B;
  1016.  
  1017.                         case FillSameOval:
  1018.                             key integer = $005C;
  1019.  
  1020.                         case AppleReserved005D:
  1021.                             key integer = $005D;
  1022.  
  1023.                         case AppleReserved005E:
  1024.                             key integer = $005E;
  1025.  
  1026.                         case FrameArc:
  1027.                             key integer = $0060;
  1028.                             Rect;
  1029.                             integer;                /* startAngle */
  1030.                             integer;                /* arcAngle */
  1031.  
  1032.                         case PaintArc:
  1033.                             key integer = $0061;
  1034.                             Rect;
  1035.                             integer;                /* startAngle */
  1036.                             integer;                /* arcAngle */
  1037.  
  1038.                         case EraseArc:
  1039.                             key integer = $0062;
  1040.                             Rect;
  1041.                             integer;                /* startAngle */
  1042.                             integer;                /* arcAngle */
  1043.  
  1044.                         case InvertArc:
  1045.                             key integer = $0063;
  1046.                             Rect;
  1047.                             integer;                /* startAngle */
  1048.                             integer;                /* arcAngle */
  1049.  
  1050.                         case FillArc:
  1051.                             key integer = $0064;
  1052.                             Rect;
  1053.                             integer;                /* startAngle */
  1054.                             integer;                /* arcAngle */
  1055.  
  1056.                         case AppleReserved0065:
  1057.                             key integer = $0065;
  1058.                             Rect;
  1059.                             integer;                /* startAngle */
  1060.                             integer;                /* arcAngle */
  1061.  
  1062.                         case AppleReserved0066:
  1063.                             key integer = $0066;
  1064.                             Rect;
  1065.                             integer;                /* startAngle */
  1066.                             integer;                /* arcAngle */
  1067.  
  1068.                         case AppleReserved0067:
  1069.                             key integer = $0067;
  1070.                             Rect;
  1071.                             integer;                /* startAngle */
  1072.                             integer;                /* arcAngle */
  1073.  
  1074.                         case FrameSameArc:
  1075.                             key integer = $0068;
  1076.                             integer;                /* startAngle */
  1077.                             integer;                /* arcAngle */
  1078.  
  1079.                         case PaintSameArc:
  1080.                             key integer = $0069;
  1081.                             integer;                /* startAngle */
  1082.                             integer;                /* arcAngle */
  1083.  
  1084.                         case EraseSameArc:
  1085.                             key integer = $006A;
  1086.                             integer;                /* startAngle */
  1087.                             integer;                /* arcAngle */
  1088.  
  1089.                         case InvertSameArc:
  1090.                             key integer = $006B;
  1091.                             integer;                /* startAngle */
  1092.                             integer;                /* arcAngle */
  1093.  
  1094.                         case FillSameArc:
  1095.                             key integer = $006C;
  1096.                             integer;                /* startAngle */
  1097.                             integer;                /* arcAngle */
  1098.  
  1099.                         case AppleReserved006D:
  1100.                             key integer = $006D;
  1101.                             integer;                /* startAngle */
  1102.                             integer;                /* arcAngle */
  1103.  
  1104.                         case AppleReserved006E:
  1105.                             key integer = $006E;
  1106.                             integer;                /* startAngle */
  1107.                             integer;                /* arcAngle */
  1108.  
  1109.                         case AppleReserved006F:
  1110.                             key integer = $006F;
  1111.                             integer;                /* startAngle */
  1112.                             integer;                /* arcAngle */
  1113.                         case FramePoly:
  1114.                             key integer = $0070;
  1115.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1116.                             Rect;                    /* enclosing rectangle */
  1117.                             wide array PolyPoints { Point; };
  1118.  
  1119.                         case PaintPoly:
  1120.                             key integer = $0071;
  1121.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1122.                             Rect;                    /* enclosing rectangle */
  1123.                             wide array PolyPoints { Point; };
  1124.  
  1125.                         case ErasePoly:
  1126.                             key integer = $0072;
  1127.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1128.                             Rect;                    /* enclosing rectangle */
  1129.                             wide array PolyPoints { Point; };
  1130.  
  1131.                         case InvertPoly:
  1132.                             key integer = $0073;
  1133.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1134.                             Rect;                    /* enclosing rectangle */
  1135.                             wide array PolyPoints { Point; };
  1136.  
  1137.                         case FillPoly:
  1138.                             key integer = $0074;
  1139.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1140.                             Rect;                    /* enclosing rectangle */
  1141.                             wide array PolyPoints { Point; };
  1142.  
  1143.                         case AppleReserved0075:
  1144.                             key integer = $0075;
  1145.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1146.                             Rect;                    /* enclosing rectangle */
  1147.                             wide array PolyPoints { Point; };
  1148.  
  1149.                         case AppleReserved0076:
  1150.                             key integer = $0076;
  1151.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1152.                             Rect;                    /* enclosing rectangle */
  1153.                             wide array PolyPoints { Point; };
  1154.  
  1155.                         case AppleReserved0077:
  1156.                             key integer = $0077;
  1157.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1158.                             Rect;                    /* enclosing rectangle */
  1159.                             wide array PolyPoints { Point; };
  1160.  
  1161.                         case FrameSamePoly:
  1162.                             key integer = $0078;
  1163.  
  1164.                         case PaintSamePoly:
  1165.                             key integer = $0079;
  1166.  
  1167.                         case EraseSamePoly:
  1168.                             key integer = $007A;
  1169.  
  1170.                         case InvertSamePoly:
  1171.                             key integer = $007B;
  1172.  
  1173.                         case FillSamePoly:
  1174.                             key integer = $007C;
  1175.  
  1176.                         case AppleReserved007D:
  1177.                             key integer = $007D;
  1178.  
  1179.                         case AppleReserved007E:
  1180.                             key integer = $007E;
  1181.  
  1182.                         case AppleReserved007F:
  1183.                             key integer = $007F;
  1184.                         case FrameRgn:
  1185.                             key integer = $0080;
  1186.     FrameRgnStart2:            integer = (FrameRgnEnd2[$$ArrayIndex(OpCodes)] - FrameRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1187.                             Rect;                /* region’s enclosing rect */
  1188.                             hex string [$$Word(FrameRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1189.     FrameRgnEnd2:
  1190.                         case PaintRgn:
  1191.                             key integer = $0081;
  1192.     PaintRgnStart2:            integer = (PaintRgnEnd2[$$ArrayIndex(OpCodes)] - PaintRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1193.                             Rect;                /* region’s enclosing rect */
  1194.                             hex string [$$Word(PaintRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1195.     PaintRgnEnd2:
  1196.                         case EraseRgn:
  1197.                             key integer = $0082;
  1198.     EraseRgnStart2:            integer = (EraseRgnEnd2[$$ArrayIndex(OpCodes)] - EraseRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1199.                             Rect;                /* region’s enclosing rect */
  1200.                             hex string [$$Word(EraseRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1201.     EraseRgnEnd2:
  1202.                         case InvertRgn:
  1203.                             key integer = $0083;
  1204.     InvertRgnStart2:        integer = (InvertRgnEnd2[$$ArrayIndex(OpCodes)] - InvertRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1205.                             Rect;                /* region’s enclosing rect */
  1206.                             hex string [$$Word(InvertRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1207.     InvertRgnEnd2:
  1208.                         case FillRgn:
  1209.                             key integer = $0084;
  1210.     FillRgnStart2:            integer = (FillRgnEnd2[$$ArrayIndex(OpCodes)] - FillRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1211.                             Rect;                /* region’s enclosing rect */
  1212.                             hex string [$$Word(FillRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1213.     FillRgnEnd2:
  1214.                         case AppleReserved0085:
  1215.                             key integer = $0085;
  1216.     AppleReserved0085Start:integer = (AppleReserved0085End[$$ArrayIndex(OpCodes)] - AppleReserved0085Start[$$ArrayIndex(OpCodes)]) >> 3;
  1217.                             Rect;                /* region’s enclosing rect */
  1218.                             hex string [$$Word(AppleReserved0085Start[$$ArrayIndex(OpCodes)]) - 10];
  1219.     AppleReserved0085End:
  1220.                         case AppleReserved0086:
  1221.                             key integer = $0086;
  1222.     AppleReserved0086Start:    integer = (AppleReserved0086End[$$ArrayIndex(OpCodes)] - AppleReserved0086Start[$$ArrayIndex(OpCodes)]) >> 3;
  1223.                             Rect;                /* region’s enclosing rect */
  1224.                             hex string [$$Word(AppleReserved0086Start[$$ArrayIndex(OpCodes)]) - 10];
  1225.     AppleReserved0086End:
  1226.                         case AppleReserved0087:
  1227.                             key integer = $0087;
  1228.     AppleReserved0087Start:    integer = (AppleReserved0087End[$$ArrayIndex(OpCodes)] - AppleReserved0087Start[$$ArrayIndex(OpCodes)]) >> 3;
  1229.                             Rect;                /* region’s enclosing rect */
  1230.                             hex string [$$Word(AppleReserved0087Start[$$ArrayIndex(OpCodes)]) - 10];
  1231.     AppleReserved0087End:
  1232.                         case FrameSameRgn:
  1233.                             key integer = $0088;
  1234.  
  1235.                         case PaintSameRgn:
  1236.                             key integer = $0089;
  1237.  
  1238.                         case EraseSameRgn:
  1239.                             key integer = $008A;
  1240.  
  1241.                         case InvertSameRgn:
  1242.                             key integer = $008B;
  1243.  
  1244.                         case FillSameRgn:
  1245.                             key integer = $008C;
  1246.  
  1247.                         case AppleReserved008D:
  1248.                             key integer = $008D;
  1249.  
  1250.                         case AppleReserved008E:
  1251.                             key integer = $008E;
  1252.  
  1253.                         case AppleReserved008F:
  1254.                             key integer = $008F;
  1255.  
  1256.                         case BitsRect:
  1257.                             key integer = $0090;
  1258.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1259.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1260.     BitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1261.     BitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1262.                             integer;                                                /* pixMap vers number    */
  1263.                             integer    unpacked;                                        /* Packing format        */
  1264.                             unsigned longint;                                        /* Size of pixel data    */
  1265.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1266.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1267.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1268.                             integer;                                                /* # bits in pixel        */
  1269.                             integer;                                                /* # components in pixel*/
  1270.                             integer;                                                /* # bits per field        */
  1271.                             unsigned longint;                                        /* Offset to next plane    */
  1272.                             unsigned longint;                                        /* Offset to color table*/
  1273.                             fill long;                                                /* Reserved                */
  1274.                             /* Color Table */
  1275.                             unsigned hex longint;                                    /* ctSeed                */
  1276.                             integer;                                                /* ctFlags                */
  1277.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1278.                             wide array ColorSpec {
  1279.                                     integer;                                        /* value                */
  1280.                                     unsigned integer;                                /* RGB:    red                */
  1281.                                     unsigned integer;                                /*        green            */
  1282.                                     unsigned integer;                                /*        blue            */
  1283.                             };
  1284.                             Rect;                        /* srcRect */
  1285.                             Rect;                        /* destRect */
  1286.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1287.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1288.                                         patCopy, patOr, patXor, patBic,
  1289.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1290.                                         blend = 32, addPin, addOver, subPin,
  1291.                                         adMax = 37, subOver, adMin;
  1292.     BitsRectBits:            hex string [$$BitField(BitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1293.                                         ($$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1294.                                         - $$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1295.  
  1296.                         case BitsRgn:
  1297.                             key integer = $0091;
  1298.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1299.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1300.     BitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1301.     BitsRgnBounds2:            rect;                                                    /* Bitmap bounds        */
  1302.                             integer;                                                /* pixMap vers number    */
  1303.                             integer    unpacked;                                        /* Packing format        */
  1304.                             unsigned longint;                                        /* Size of pixel data    */
  1305.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1306.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1307.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1308.                             integer;                                                /* # bits in pixel        */
  1309.                             integer;                                                /* # components in pixel*/
  1310.                             integer;                                                /* # bits per field        */
  1311.                             unsigned longint;                                        /* Offset to next plane    */
  1312.                             unsigned longint;                                        /* Offset to color table*/
  1313.                             fill long;                                                /* Reserved                */
  1314.                             /* Color Table */
  1315.                             unsigned hex longint;                                    /* ctSeed                */
  1316.                             integer;                                                /* ctFlags                */
  1317.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1318.                             wide array ColorSpec {
  1319.                                     integer;                                        /* value                */
  1320.                                     unsigned integer;                                /* RGB:    red                */
  1321.                                     unsigned integer;                                /*        green            */
  1322.                                     unsigned integer;                                /*        blue            */
  1323.                             };
  1324.                             Rect;                        /* srcRect */
  1325.                             Rect;                        /* destRect */
  1326.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1327.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1328.                                         patCopy, patOr, patXor, patBic,
  1329.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1330.                                         blend = 32, addPin, addOver, subPin,
  1331.                                         adMax = 37, subOver, adMin;
  1332.     BitsRgnStart2:            integer = (BitsRgnEnd2[$$ArrayIndex(OpCodes)] - BitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1333.                             Rect;                /* region’s enclosing rect */
  1334.                             hex string [$$Word(BitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1335.     BitsRgnEnd2:            hex string [$$PackedSize(BitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1336.                                         $$BitField(BitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1337.                                         ($$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1338.                                         - $$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1339.  
  1340.                         case AppleReserved0092:
  1341.                             key integer = $0092;
  1342.     AppleReserved0092Start:    unsigned integer = (AppleReserved0092End[$$ArrayIndex(OpCodes)] - AppleReserved0092Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1343.                             hex string [$$Word(AppleReserved0092Start[$$ArrayIndex(OpCodes)])];
  1344.     AppleReserved0092End:
  1345.                         case AppleReserved0093:
  1346.                             key integer = $0093;
  1347.     AppleReserved0093Start:    unsigned integer = (AppleReserved0093End[$$ArrayIndex(OpCodes)] - AppleReserved0093Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1348.                             hex string [$$Word(AppleReserved0093Start[$$ArrayIndex(OpCodes)])];
  1349.     AppleReserved0093End:
  1350.                         case AppleReserved0094:
  1351.                             key integer = $0094;
  1352.     AppleReserved0094Start:    unsigned integer = (AppleReserved0094End[$$ArrayIndex(OpCodes)] - AppleReserved0094Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1353.                             hex string [$$Word(AppleReserved0094Start[$$ArrayIndex(OpCodes)])];
  1354.     AppleReserved0094End:
  1355.                         case AppleReserved0095:
  1356.                             key integer = $0095;
  1357.     AppleReserved0095Start:    unsigned integer = (AppleReserved0095End[$$ArrayIndex(OpCodes)] - AppleReserved0095Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1358.                             hex string [$$Word(AppleReserved0095Start[$$ArrayIndex(OpCodes)])];
  1359.     AppleReserved0095End:
  1360.                         case AppleReserved0096:
  1361.                             key integer = $0096;
  1362.     AppleReserved0096Start:    unsigned integer = (AppleReserved0096End[$$ArrayIndex(OpCodes)] - AppleReserved0096Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1363.                             hex string [$$Word(AppleReserved0096Start[$$ArrayIndex(OpCodes)])];
  1364.     AppleReserved0096End:
  1365.                         case AppleReserved0097:
  1366.                             key integer = $0097;
  1367.     AppleReserved0097Start:    unsigned integer = (AppleReserved0097End[$$ArrayIndex(OpCodes)] - AppleReserved0097Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1368.                             hex string [$$Word(AppleReserved0097Start[$$ArrayIndex(OpCodes)])];
  1369.     AppleReserved0097End:
  1370.                         case PackBitsRect:
  1371.                             key integer = $0098;
  1372.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1373.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1374.     PackBitsRectpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1375.     PackBitsRectBounds2:    rect;                                                    /* Bitmap bounds        */
  1376.                             integer;                                                /* pixMap vers number    */
  1377.                             integer    unpacked;                                        /* Packing format        */
  1378.                             unsigned longint;                                        /* Size of pixel data    */
  1379.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1380.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1381.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1382.                             integer;                                                /* # bits in pixel        */
  1383.                             integer;                                                /* # components in pixel*/
  1384.                             integer;                                                /* # bits per field        */
  1385.                             unsigned longint;                                        /* Offset to next plane    */
  1386.                             unsigned longint;                                        /* Offset to color table*/
  1387.                             fill long;                                                /* Reserved                */
  1388.                             /* Color Table */
  1389.                             unsigned hex longint;                                    /* ctSeed                */
  1390.                             integer;                                                /* ctFlags                */
  1391.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1392.                             wide array ColorSpec {
  1393.                                     integer;                                        /* value                */
  1394.                                     unsigned integer;                                /* RGB:    red                */
  1395.                                     unsigned integer;                                /*        green            */
  1396.                                     unsigned integer;                                /*        blue            */
  1397.                             };
  1398.                             Rect;                        /* srcRect */
  1399.                             Rect;                        /* destRect */
  1400.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1401.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1402.                                         patCopy, patOr, patXor, patBic,
  1403.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1404.                                         blend = 32, addPin, addOver, subPin,
  1405.                                         adMax = 37, subOver, adMin;
  1406.     PackBitsRectBits:        hex string [$$PackedSize(PackBitsRectBits[$$ArrayIndex(OpCodes)],
  1407.                                         $$BitField(PackBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1408.                                         ($$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1409.                                         - $$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1410.                         case PackBitsRgn:
  1411.                             key integer = $0099;
  1412.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1413.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1414.     PackBitsRgnpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1415.     PackBitsRgnBounds2:    rect;                                                        /* Bitmap bounds        */
  1416.                             integer;                                                /* pixMap vers number    */
  1417.                             integer    unpacked;                                        /* Packing format        */
  1418.                             unsigned longint;                                        /* Size of pixel data    */
  1419.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1420.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1421.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1422.                             integer;                                                /* # bits in pixel        */
  1423.                             integer;                                                /* # components in pixel*/
  1424.                             integer;                                                /* # bits per field        */
  1425.                             unsigned longint;                                        /* Offset to next plane    */
  1426.                             unsigned longint;                                        /* Offset to color table*/
  1427.                             fill long;                                                /* Reserved                */
  1428.                             /* Color Table */
  1429.                             unsigned hex longint;                                    /* ctSeed                */
  1430.                             integer;                                                /* ctFlags                */
  1431.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1432.                             wide array ColorSpec {
  1433.                                     integer;                                        /* value                */
  1434.                                     unsigned integer;                                /* RGB:    red                */
  1435.                                     unsigned integer;                                /*        green            */
  1436.                                     unsigned integer;                                /*        blue            */
  1437.                             };
  1438.                             Rect;                        /* srcRect */
  1439.                             Rect;                        /* destRect */
  1440.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1441.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1442.                                         patCopy, patOr, patXor, patBic,
  1443.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1444.                                         blend = 32, addPin, addOver, subPin,
  1445.                                         adMax = 37, subOver, adMin;
  1446.     PackBitsRgnStart2:        integer = (PackBitsRgnEnd2[$$ArrayIndex(OpCodes)] - PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1447.                             Rect;                /* region’s enclosing rect */
  1448.                             hex string [$$Word(PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1449.     PackBitsRgnEnd2:        hex string [$$PackedSize(PackBitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1450.                                         $$BitField(PackBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1451.                                         ($$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1452.                                         - $$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1453.  
  1454.                         case DirectBitsRect:
  1455.                             key integer = $009A;
  1456.     DirectBitsRectStart:    unsigned integer = (DirectBitsRectEnd[$$ArrayIndex(OpCodes)] - DirectBitsRectStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1457.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1458.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1459.     DirectBitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1460.     DirectBitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1461.                             integer;                                                /* pixMap vers number    */
  1462.                             integer    unpacked;                                        /* Packing format        */
  1463.                             unsigned longint;                                        /* Size of pixel data    */
  1464.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1465.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1466.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1467.                             integer;                                                /* # bits in pixel        */
  1468.                             integer;                                                /* # components in pixel*/
  1469.                             integer;                                                /* # bits per field        */
  1470.                             unsigned longint;                                        /* Offset to next plane    */
  1471.                             unsigned longint;                                        /* Offset to color table*/
  1472.                             fill long;                                                /* Reserved                */
  1473.                             /* Color Table */
  1474.                             unsigned hex longint;                                    /* ctSeed                */
  1475.                             integer;                                                /* ctFlags                */
  1476.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1477.                             wide array ColorSpec {
  1478.                                     integer;                                        /* value                */
  1479.                                     unsigned integer;                                /* RGB:    red                */
  1480.                                     unsigned integer;                                /*        green            */
  1481.                                     unsigned integer;                                /*        blue            */
  1482.                             };
  1483.                             Rect;                        /* srcRect */
  1484.                             Rect;                        /* destRect */
  1485.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1486.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1487.                                         patCopy, patOr, patXor, patBic,
  1488.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1489.                                         blend = 32, addPin, addOver, subPin,
  1490.                                         adMax = 37, subOver, adMin;
  1491.     DirectBitsRectBits:        hex string [$$BitField(DirectBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1492.                                         ($$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1493.                                         - $$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1494.     DirectBitsRectEnd:
  1495.                         case DirectBitsRgn:
  1496.                             key integer = $009B;
  1497.     DirectBitsRgnStart:    unsigned integer = (DirectBitsRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1498.                             unsigned bitstring[1] = 1;                                    /* New pixMap flag        */
  1499.                             unsigned bitstring[2] = 0;                                    /* Must be 0            */
  1500.     DirectBitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1501.     DirectBitsRgnBounds2:        rect;                                                    /* Bitmap bounds        */
  1502.                             integer;                                                    /* pixMap vers number    */
  1503.                             integer    unpacked;                                            /* Packing format        */
  1504.                             unsigned longint;                                            /* Size of pixel data    */
  1505.                             unsigned hex longint;                                        /* h. resolution (ppi) (fixed) */
  1506.                             unsigned hex longint;                                        /* v. resolution (ppi) (fixed) */
  1507.                             integer            chunky, chunkyPlanar, planar;                /* Pixel storage format    */
  1508.                             integer;                                                    /* # bits in pixel        */
  1509.                             integer;                                                    /* # components in pixel*/
  1510.                             integer;                                                    /* # bits per field        */
  1511.                             unsigned longint;                                            /* Offset to next plane    */
  1512.                             unsigned longint;                                            /* Offset to color table*/
  1513.                             fill long;                                                    /* Reserved                */
  1514.                             /* Color Table */
  1515.                             unsigned hex longint;                                        /* ctSeed                */
  1516.                             integer;                                                    /* ctFlags                */
  1517.                             integer = $$Countof(ColorSpec) - 1;                            /* ctSize                */
  1518.                             wide array ColorSpec {
  1519.                                     integer;                                            /* value                */
  1520.                                     unsigned integer;                                    /* RGB:    red                */
  1521.                                     unsigned integer;                                    /*        green            */
  1522.                                     unsigned integer;                                    /*        blue            */
  1523.                             };
  1524.                             Rect;                                                        /* srcRect */
  1525.                             Rect;                                                        /* destRect */
  1526.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1527.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1528.                                         patCopy, patOr, patXor, patBic,
  1529.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1530.                                         blend = 32, addPin, addOver, subPin,
  1531.                                         adMax = 37, subOver, adMin;
  1532.     DirectBitsMaskRgnStart:    integer = (DirectBitsMaskRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  1533.                             Rect;                                                    /* region’s enclosing rect */
  1534.                             hex string [$$Word(DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  1535.     DirectBitsMaskRgnEnd:
  1536.     DirectBitsRgnBits:        hex string [$$BitField(DirectBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1537.                                         ($$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1538.                                         - $$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1539.     DirectBitsRgnEnd:
  1540.  
  1541.                         case AppleReserved009C:
  1542.                             key integer = $009C;
  1543.     AppleReserved009CStart:    unsigned integer = (AppleReserved009CEnd[$$ArrayIndex(OpCodes)] - AppleReserved009CStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1544.                             hex string [$$Word(AppleReserved009CStart[$$ArrayIndex(OpCodes)])];
  1545.     AppleReserved009CEnd:
  1546.                         case AppleReserved009D:
  1547.                             key integer = $009D;
  1548.     AppleReserved009DStart:    unsigned integer = (AppleReserved009DEnd[$$ArrayIndex(OpCodes)] - AppleReserved009DStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1549.                             hex string [$$Word(AppleReserved009DStart[$$ArrayIndex(OpCodes)])];
  1550.     AppleReserved009DEnd:
  1551.                         case AppleReserved009E:
  1552.                             key integer = $009E;
  1553.     AppleReserved009EStart:    unsigned integer = (AppleReserved009EEnd[$$ArrayIndex(OpCodes)] - AppleReserved009EStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1554.                             hex string [$$Word(AppleReserved009EStart[$$ArrayIndex(OpCodes)])];
  1555.     AppleReserved009EEnd:
  1556.                         case AppleReserved009F:
  1557.                             key integer = $009F;
  1558.     AppleReserved009FStart:    unsigned integer = (AppleReserved009FEnd[$$ArrayIndex(OpCodes)] - AppleReserved009FStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1559.                             hex string [$$Word(AppleReserved009FStart[$$ArrayIndex(OpCodes)])];
  1560.     AppleReserved009FEnd:
  1561.                         case ShortComment:
  1562.                             key integer = $00A0;
  1563.                             integer;                            /* comment kind */
  1564.                         case LongComment:
  1565.                             key integer = $00A1;
  1566.                             integer;                            /* comment kind */
  1567.     LongCommentStart2:        integer = (LongCommentEnd2[$$ArrayIndex(OpCodes)] - LongCommentStart2[$$ArrayIndex(OpCodes)] - 16) >> 3;
  1568.                             hex string [$$Word(LongCommentStart2[$$ArrayIndex(OpCodes)])];
  1569.     LongCommentEnd2:
  1570.                         case OpEndPic:
  1571.                             key integer = $00FF;
  1572.  
  1573.                         case HeaderOp:
  1574.                             key integer = $0C00;
  1575. #if PICT_RezTemplateVersion == 1
  1576.                             longint Version2 = -1;
  1577.                             /* Fixed point bounding box */
  1578.                             unsigned hex longint;
  1579.                             unsigned hex longint;
  1580.                             unsigned hex longint;
  1581.                             unsigned hex longint;
  1582.                             longint Version2 = -1;                    /* Reserved    */
  1583. #else
  1584.                             switch    {
  1585.                                 case StandardVersion2:
  1586.                                     key    integer = -1;
  1587.                                     integer = -1;
  1588.                                     unsigned hex longint;
  1589.                                     unsigned hex longint;
  1590.                                     unsigned hex longint;
  1591.                                     unsigned hex longint;
  1592.                                     fill long;                        /* Reserved */
  1593.                                 case ExtendedVersion2:
  1594.                                     key integer = -2;
  1595.                                     fill word;
  1596.                                     unsigned hex longint;            /* hRes */
  1597.                                     unsigned hex longint;            /* vRes */
  1598.                                     Rect;                            /* SrcRect */
  1599.                                     fill long;                        /* Reserved */
  1600.                             };
  1601. #endif
  1602.                     };
  1603.                     align word;
  1604.                 };
  1605.         };
  1606.     endOfPict:
  1607. #endif
  1608. };
  1609.  
  1610. #endif __PICT_R__
  1611.  
  1612.  
  1613. #endif /* __PICTUTILS_R__ */
  1614.  
  1615.